package com.bsg.upm.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 任务实体类
 * 
 * @author HCK
 *
 */
public class TaskEntity implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 任务编码
	 */
	private String id;

	/**
	 * 所属站点
	 */
	private SiteEntity site;

	/**
	 * 任务对象类型
	 */
	private String objType;

	/**
	 * 任务对象编码
	 */
	private String objId;

	/**
	 * 任务对象名称
	 */
	private String objName;

	/**
	 * 任务动作类型
	 */
	private String actionType;

	/**
	 * 任务开始时间
	 */
	private Date startDateTime;

	/**
	 * 任务结束时间
	 */
	private Date endDateTime;

	/**
	 * 任务状态
	 */
	private String status;

	/**
	 * 任务回执
	 */
	private String msg;

	/**
	 * 所属者
	 */
	private String owner;

	/**
	 * 包含子任务
	 */
	private List<SubTaskEntity> subTasks;

	/**
	 * 操作日志
	 */
	private OperateLogEntity operateLog;

	/**
	 * 任务创建者
	 */
	private String createUserLoginName;

	/**
	 * 任务对象
	 */
	private Object obj;

	/**
	 * 获取任务编码
	 * 
	 * @return id 任务编码
	 */
	public String getId() {
		return id;
	}

	/**
	 * 设置任务编码
	 * 
	 * @param id
	 *            任务编码
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取所属站点
	 * 
	 * @return site 所属站点
	 */
	public SiteEntity getSite() {
		return site;
	}

	/**
	 * 设置所属站点
	 * 
	 * @param site
	 *            所属站点
	 */
	public void setSite(SiteEntity site) {
		this.site = site;
	}

	/**
	 * 获取任务对象类型
	 * 
	 * @return objType 任务对象类型
	 */
	public String getObjType() {
		return objType;
	}

	/**
	 * 设置任务对象类型
	 * 
	 * @param objType
	 *            任务对象类型
	 */
	public void setObjType(String objType) {
		this.objType = objType;
	}

	/**
	 * 获取任务对象编码
	 * 
	 * @return objId 任务对象编码
	 */
	public String getObjId() {
		return objId;
	}

	/**
	 * 设置任务对象编码
	 * 
	 * @param objId
	 *            任务对象编码
	 */
	public void setObjId(String objId) {
		this.objId = objId;
	}

	/**
	 * 获取任务对象名称
	 * 
	 * @return objName 任务对象名称
	 */
	public String getObjName() {
		return objName;
	}

	/**
	 * 设置任务对象名称
	 * 
	 * @param objName
	 *            任务对象名称
	 */
	public void setObjName(String objName) {
		this.objName = objName;
	}

	/**
	 * 获取任务动作类型
	 * 
	 * @return actionType 任务动作类型
	 */
	public String getActionType() {
		return actionType;
	}

	/**
	 * 设置任务动作类型
	 * 
	 * @param actionType
	 *            任务动作类型
	 */
	public void setActionType(String actionType) {
		this.actionType = actionType;
	}

	/**
	 * 获取任务开始时间
	 * 
	 * @return startDateTime 任务开始时间
	 */
	public Date getStartDateTime() {
		return startDateTime;
	}

	/**
	 * 设置任务开始时间
	 * 
	 * @param startDateTime
	 *            任务开始时间
	 */
	public void setStartDateTime(Date startDateTime) {
		this.startDateTime = startDateTime;
	}

	/**
	 * 获取任务结束时间
	 * 
	 * @return endDateTime 任务结束时间
	 */
	public Date getEndDateTime() {
		return endDateTime;
	}

	/**
	 * 设置任务结束时间
	 * 
	 * @param endDateTime
	 *            任务结束时间
	 */
	public void setEndDateTime(Date endDateTime) {
		this.endDateTime = endDateTime;
	}

	/**
	 * 获取任务状态
	 * 
	 * @return status 任务状态
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * 设置任务状态
	 * 
	 * @param status
	 *            任务状态
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 获取任务回执
	 * 
	 * @return msg 任务回执
	 */
	public String getMsg() {
		return msg;
	}

	/**
	 * 设置任务回执
	 * 
	 * @param msg
	 *            任务回执
	 */
	public void setMsg(String msg) {
		this.msg = msg;
	}

	/**
	 * 获取所属者
	 * 
	 * @return owner 所属者
	 */
	public String getOwner() {
		return owner;
	}

	/**
	 * 设置所属者
	 * 
	 * @param owner
	 *            所属者
	 */
	public void setOwner(String owner) {
		this.owner = owner;
	}

	/**
	 * 获取包含子任务
	 * 
	 * @return subTasks 包含子任务
	 */
	public List<SubTaskEntity> getSubTasks() {
		return subTasks;
	}

	/**
	 * 设置包含子任务
	 * 
	 * @param subTasks
	 *            包含子任务
	 */
	public void setSubTasks(List<SubTaskEntity> subTasks) {
		this.subTasks = subTasks;
	}

	/**
	 * 获取操作日志
	 * 
	 * @return operateLog 操作日志
	 */
	public OperateLogEntity getOperateLog() {
		return operateLog;
	}

	/**
	 * 设置操作日志
	 * 
	 * @param operateLog
	 *            操作日志
	 */
	public void setOperateLog(OperateLogEntity operateLog) {
		this.operateLog = operateLog;
	}

	/**
	 * 获取任务创建者
	 * 
	 * @return createUserLoginName 任务创建者
	 */
	public String getCreateUserLoginName() {
		return createUserLoginName;
	}

	/**
	 * 设置任务创建者
	 * 
	 * @param createUserLoginName
	 *            任务创建者
	 */
	public void setCreateUserLoginName(String createUserLoginName) {
		this.createUserLoginName = createUserLoginName;
	}

	/**
	 * 获取任务对象
	 * 
	 * @return obj 任务对象
	 */
	public Object getObj() {
		return obj;
	}

	/**
	 * 设置任务对象
	 * 
	 * @param obj
	 *            任务对象
	 */
	public void setObj(Object obj) {
		this.obj = obj;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "TaskEntity [id=" + id + ", site=" + site + ", objType=" + objType + ", objId=" + objId + ", objName="
				+ objName + ", actionType=" + actionType + ", startDateTime=" + startDateTime + ", endDateTime="
				+ endDateTime + ", status=" + status + ", msg=" + msg + ", owner=" + owner + ", subTasks=" + subTasks
				+ ", operateLog=" + operateLog + ", createUserLoginName=" + createUserLoginName + ", obj=" + obj + "]";
	}

}
